
# -*- coding: utf-8 -*-

from django.forms import ModelForm, ModelChoiceField,ModelMultipleChoiceField, Textarea
from comunidadcyt.proyectos.models import Proyectos, SolicitudIngresoProyecto, HistorialProyecto
from django.utils.encoding import force_unicode
from comunidadcyt.gruposDeInvestigacion.models import GruposDeInvestigacion as Grupos
from comunidadcyt.partners.models import Partners
from comunidadcyt.lineasDeInvestigacion.models import LineasDeInvestigacion as Lineas
from comunidadcyt.departamentos.models import Departamentos
from comunidadcyt.Registration_Users.models import User


class choiceName(ModelChoiceField):
    def label_from_instance(self, obj):
        name = force_unicode(obj.first_name +' '+ obj.last_name)
        return name
    
class choiceMultipleName(ModelMultipleChoiceField):
    def label_from_instance(self, obj):
        name = force_unicode(obj.first_name +' '+ obj.last_name)
        return name
    
class ProyectosForm(ModelForm):
    
    def __init__(self, *args, **kwargs):
        super(ProyectosForm, self).__init__(*args, **kwargs)
        self.fields['Departamentos'].queryset=Departamentos.objects.all().order_by('Nombre_departamento')
        self.fields['Departamentos'].help_text=None
        self.fields['Lineas'].queryset=Lineas.objects.all().order_by('Nombre_linea')
        self.fields['Lineas'].help_text=None
        self.fields['Partners'].queryset=Partners.objects.all().order_by('Nombre_partner')
        self.fields['Partners'].help_text=None
        self.fields['Grupos'].queryset=Grupos.objects.all().order_by('Nombre_grupo')
        self.fields['Grupos'].help_text=None
        self.fields['Responsables']=choiceMultipleName(queryset=User.objects.all().order_by('first_name', 'last_name'), label="* Responsable", help_text=None)
        self.fields['Miembros']=choiceMultipleName(queryset=User.objects.all().order_by('first_name', 'last_name'), label="* Miembros", help_text=None)
        
    class Meta:
        model = Proyectos


class FormSolicitudIngresoProyecto(ModelForm):
    def __init__(self, user, *args, **kwargs):
        super(FormSolicitudIngresoProyecto, self).__init__(*args, **kwargs)
        self.fields['Usuario']=choiceName(queryset=User.objects.filter(pk = user.id))
        self.fields['Usuario'].label='Usuario'
        self.fields['Usuario'].empty_label=None
        self.fields['Proyecto'].queryset=Proyectos.objects.all().order_by('Nombre_proyecto')
        self.fields['Proyecto'].help_text=None
        self.fields['Proyecto'].empty_label=None

    class Meta:
        model = SolicitudIngresoProyecto
        fields = ('Usuario','Proyecto','Mensaje')
        widgets = {'Mensaje': Textarea(attrs={'cols': 25, 'rows': 8})}

class FormHistorialProyecto(ModelForm):
    def __init__(self, hist, *args, **kwargs):
        super(FormHistorialProyecto, self).__init__(*args, **kwargs)
        self.fields['Usuario']=choiceName(queryset=User.objects.filter(pk = hist.Usuario.id))
        self.fields['Usuario'].label='Usuario'
        self.fields['Usuario'].empty_label=None
        #self.fields['Proyecto'].queryset=choiceNameGrupo(queryset=Proyectos.objects.filter(pk = hist.Proyecto.id))
        #self.fields['Proyecto'].help_text=None
        #self.fields['Proyecto'].empty_label=None

    class Meta:
        model = HistorialProyecto
        fields = ('Usuario','Fecha','Motivo')
        widgets = {'Motivo': Textarea(attrs={'cols': 25, 'rows': 8})}

